package com.servlet.req; /**
 * @author wzm
 * @create 2024-01-27 16:13
 * project_name:JavaWeb2401
 * @Description 测试请求的转发
 */

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/win1")
public class Window1 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //窗口1
        System.out.println("你好，我是窗口1，我为你做了一下事情。接下来你需要去窗口2");
        //省略了很多的功能代码

        //窗口1 开了个小票
        request.setAttribute("piao","50块");


        //请求转发到窗口2

        //怎么走 去哪里？
        //RequestDispatcher requestDispatcher = request.getRequestDispatcher("/win2");//问路
        //走向2窗口
        //requestDispatcher.forward(request,response);//携带请求的东西 身份证


        //简写   http://localhsot:8080/web03
        request.getRequestDispatcher("/win2").forward(request,response);



        /*补充：
        * request是请求对象  包含了请求相关的信息
        * 同时request也是一个域对象
        * 域对象：
        *      就是在一个范围内像map一样的存储键值对的容器
        * 根据范围域对象有四个：暂时了解request域
        * request域：表示的是在一次请求中这个数据是可以使用的
        *
        *请求转发的特点：
        * 1.访问地址不会发生变换,证明通过请求转发的多个资源属于一次请求  他们共享一个rquest域
        * 2.转发可以访问到WEB-INF受保护的目录
        * 3.转发是不可以访问服务器以外的资源
        * 4.转发是可以可以共享request中的数据的
        *
        * */

    }
}
